'use strict';

module.exports = app => {
  // 引入数据类型
  const { INTEGER, STRING, DATE } = app.Sequelize;
  // 配置
  const GroupUser = app.model.define('group_user', {
    id: {
      type: INTEGER(20).UNSIGNED,
      primaryKey: true,
      autoIncrement: true
    },
    user_id: {
      type: INTEGER(20).UNSIGNED,
      allowNull: false,
      comment: '用户id',
      references: {
        model: 'user',
        key: 'id'
      },
      onUpdate: 'restrict', // 更新时操作
      onDelete: 'cascade' // 删除时操作
    },
    group_id: {
      type: INTEGER(20).UNSIGNED,
      allowNull: false,
      comment: '群组id',
      references: {
        model: 'group',
        key: 'id'
      },
      onUpdate: 'restrict', // 更新时操作
      onDelete: 'cascade' // 删除时操作
    },
    nickname: {
      type: STRING(30),
      allowNull: false,
      defaultValue: '',
      comment: '在群里的昵称'
    },
    created_at: DATE,
    updated_at: DATE
  });

  // 定义模型关联关系
  GroupUser.associate = function(model){

    GroupUser.belongsTo(app.model.User, {
      // 指定外键（第一个外键可以不写）
      foreignKey:'user_id'
    });
  }
  return GroupUser;
};